﻿/// 1299.将每个元素替换为右侧最大元素
/// 给你一个数组 arr ，请你将每个元素用它右边最大的元素替换，
/// 如果是最后一个元素，用 -1 替换。
/// 完成所有替换操作后，请你返回这个数组。

using System;
using System.Globalization;

namespace _1299_replace_elements_with_greatest_element_on_right_side
{
    class Program
    {
        static void Main (string[] args)
        {
            int[] nums = new Solution ().ReplaceElements (new int[] { 17, 18, 5, 4, 6, 1 });
            for (int i = 0;i < nums.Length;i++)
            {
                Console.Write ($"{nums[i]},");
            }
        }
    }

    public class Solution
    {
        public int[] ReplaceElements (int[] arr)
        {
            int num = arr[arr.Length - 1];
            arr[arr.Length - 1] = -1;
            for (int i = arr.Length - 2;i >= 0; i--)
            {
                int number = Math.Max (num, arr[i + 1]);
                num = arr[i];
                arr[i] = number;
            }
            return arr;
        }
    }
}
